const babel = require('@rollup/plugin-babel');
const resolve = require('@rollup/plugin-node-resolve');
const commonjs = require('@rollup/plugin-commonjs');
const terser = require('@rollup/plugin-terser');
const pkg = require('./package.json');

// 配置文件路径
const input = 'src/yu-storage.js';

// 忽略的依赖
const external = [];

// 通用插件配置
const plugins = [
  // 解析第三方模块
  resolve(),
  // 将CommonJS模块转换为ES6
  commonjs(),
  // 使用Babel转换ES6+语法
  babel({
    babelHelpers: 'bundled',
    exclude: 'node_modules/**'
  })
];

module.exports = [
  // 1. 通用UMD格式 (用于浏览器环境，支持AMD/CommonJS/全局变量)
  {
    input,
    output: {
      name: 'YuStorage',
      file: pkg.browser,
      format: 'umd',
      sourcemap: true,
      // 全局变量名称
      exports: 'named'
    },
    external,
    plugins: [...plugins]
  },
  
  // 2. 压缩版UMD格式
  {
    input,
    output: {
      name: 'YuStorage',
      file: pkg.browser.replace('.js', '.min.js'),
      format: 'umd',
      sourcemap: true,
      exports: 'named'
    },
    external,
    plugins: [...plugins, terser()]
  },
  
  // 3. CommonJS格式 (用于Node.js环境)
  {
    input,
    output: {
      file: pkg.main,
      format: 'cjs',
      sourcemap: true,
      exports: 'named'
    },
    external,
    plugins
  },
  
  // 4. ES模块格式 (用于现代前端工程化项目)
  {
    input,
    output: {
      file: pkg.module,
      format: 'es',
      sourcemap: true
    },
    external,
    plugins
  }
];
    